<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en"><head><title>The 'icon' URI scheme</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="The 'icon' URI scheme">
<meta name="keywords" content="I-D, Internet-Draft, URI, Uniform Resource Identifier, icon">
<meta name="generator" content="xml2rfc v1.35 (http://xml.resource.org/)">
<style type='text/css'><!--
        body {
                font-family: verdana, charcoal, helvetica, arial, sans-serif;
                font-size: small; color: #000; background-color: #FFF;
                margin: 2em;
        }
        h1, h2, h3, h4, h5, h6 {
                font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
                font-weight: bold; font-style: normal;
        }
        h1 { color: #900; background-color: transparent; text-align: right; }
        h3 { color: #333; background-color: transparent; }

        td.RFCbug {
                font-size: x-small; text-decoration: none;
                width: 30px; height: 30px; padding-top: 2px;
                text-align: justify; vertical-align: middle;
                background-color: #000;
        }
        td.RFCbug span.RFC {
                font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
                font-weight: bold; color: #666;
        }
        td.RFCbug span.hotText {
                font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
                font-weight: normal; text-align: center; color: #FFF;
        }

        table.TOCbug { width: 30px; height: 15px; }
        td.TOCbug {
                text-align: center; width: 30px; height: 15px;
                color: #FFF; background-color: #900;
        }
        td.TOCbug a {
                font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
                font-weight: bold; font-size: x-small; text-decoration: none;
                color: #FFF; background-color: transparent;
        }

        td.header {
                font-family: arial, helvetica, sans-serif; font-size: x-small;
                vertical-align: top; width: 33%;
                color: #FFF; background-color: #666;
        }
        td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
        td.author-text { font-size: x-small; }

        /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
        a.info {
                /* This is the key. */
                position: relative;
                z-index: 24;
                text-decoration: none;
        }
        a.info:hover {
                z-index: 25;
                color: #FFF; background-color: #900;
        }
        a.info span { display: none; }
        a.info:hover span.info {
                /* The span will display just on :hover state. */
                display: block;
                position: absolute;
                font-size: smaller;
                top: 2em; left: -5em; width: 15em;
                padding: 2px; border: 1px solid #333;
                color: #900; background-color: #EEE;
                text-align: left;
        }

        a { font-weight: bold; }
        a:link    { color: #900; background-color: transparent; }
        a:visited { color: #633; background-color: transparent; }
        a:active  { color: #633; background-color: transparent; }

        p { margin-left: 2em; margin-right: 2em; }
        p.copyright { font-size: x-small; }
        p.toc { font-size: small; font-weight: bold; margin-left: 3em; }
        table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
        td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }

        ol.text { margin-left: 2em; margin-right: 2em; }
        ul.text { margin-left: 2em; margin-right: 2em; }
        li      { margin-left: 3em; }

        /* RFC-2629 <spanx>s and <artwork>s. */
        em     { font-style: italic; }
        strong { font-weight: bold; }
        dfn    { font-weight: bold; font-style: normal; }
        cite   { font-weight: normal; font-style: normal; }
        tt     { color: #036; }
        tt, pre, pre dfn, pre em, pre cite, pre span {
                font-family: "Courier New", Courier, monospace; font-size: small;
        }
        pre {
                text-align: left; padding: 4px;
                color: #000; background-color: #CCC;
        }
        pre dfn  { color: #900; }
        pre em   { color: #66F; background-color: #FFC; font-weight: normal; }
        pre .key { color: #33C; font-weight: bold; }
        pre .id  { color: #900; }
        pre .str { color: #000; background-color: #CFF; }
        pre .val { color: #066; }
        pre .rep { color: #909; }
        pre .oth { color: #000; background-color: #FCF; }
        pre .err { background-color: #FCC; }

        /* RFC-2629 <texttable>s. */
        table.all, table.full, table.headers, table.none {
                font-size: small; text-align: center; border-width: 2px;
                vertical-align: top; border-collapse: collapse;
        }
        table.all, table.full { border-style: solid; border-color: black; }
        table.headers, table.none { border-style: none; }
        th {
                font-weight: bold; border-color: black;
                border-width: 2px 2px 3px 2px;
        }
        table.all th, table.full th { border-style: solid; }
        table.headers th { border-style: none none solid none; }
        table.none th { border-style: none; }
        table.all td {
                border-style: solid; border-color: #333;
                border-width: 1px 2px;
        }
        table.full td, table.headers td, table.none td { border-style: none; }

        hr { height: 1px; }
        hr.insert {
                width: 80%; border-style: none; border-width: 0;
                color: #CCC; background-color: #CCC;
        }
--></style>
</head>
<body>
<table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
<tr><td class="header">Network Working Group</td><td class="header">P-A. LaFayette</td></tr>
<tr><td class="header">Internet-Draft</td><td class="header">Chromium Project</td></tr>
<tr><td class="header">Intended status: Standards Track</td><td class="header">June 28, 2010</td></tr>
<tr><td class="header">Expires: December 30, 2010</td><td class="header">&nbsp;</td></tr>
</table></td></tr></table>
<h1><br />The 'icon' URI scheme<br />draft-lafayette-icon-uri-scheme-01</h1>

<h3>Abstract</h3>

<p>This document specifies the <tt>icon</tt> URI scheme.  Icons have a fundamental role in user interaction with computer operating systems.  In a graphical user interface, they may represent a file, folder, application, or device.  They live on the desktop, in toolbars, and in menus.  Most operating systems provide a standard set of icons that match the look and feel of the system.  The <tt>icon</tt> URI scheme lets web page designers leverage these existing platform icons.
</p>
<h3>Editorial Note (To be removed by RFC Editor)</h3>

<p>Discussion of this draft should take place on the URI Review mailing list (uri-review@ietf.org).
</p>
<h3>URI Scheme versus URN Namespace</h3>

<p>It has been suggested that a URN namespace may be more appropriate for icon resolution than the new URI scheme. <a href='http://www.ietf.org/mail-archive/web/uri-review/current/msg01161.html'>Discussion</a> on these matters has been ongoing in the uri-review@ietf.org mailing list. The arguments will be taken into consideration for the final decision as whether this draft should be considered for permanent registration.
</p>
<h3>Status of This Memo</h3>
<p>
This Internet-Draft is submitted  in full
conformance with the provisions of BCP&nbsp;78 and BCP&nbsp;79.</p>
<p>
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF).  Note that other groups may also distribute
working documents as Internet-Drafts.  The list of current
Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.</p>
<p>
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any time.
It is inappropriate to use Internet-Drafts as reference material or to cite
them other than as &ldquo;work in progress.&rdquo;</p>
<p>
This Internet-Draft will expire on December 30, 2010.</p>

<h3>Copyright Notice</h3>
<p>
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors.  All rights reserved.</p>
<p>
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document.  Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.</p>

<a name="intro"></a><br /><hr />
<a name="rfc.section.1"></a><h3>1.&nbsp;
Introduction</h3>

<p>An <tt>icon</tt> URI is designed to be a web accessible scheme used to resolve operating system icon resources.  <tt>Icon</tt> URIs use either a file extension or an Internet media type to specify the filetype of a platform icon.  Web pages can use <tt>icon</tt> URIs in any place that an image is specifiable by a URI.  In particular, <tt>icon</tt> URIs can be used with <tt>&lt;img&gt;</tt> tags and JavaScript <tt>Image</tt> objects.
</p>
<p>Similar icon URI schemes are currently being used in some modern browsers.  The Mozilla project has a <tt>moz-icon://</tt> URI scheme that is web accessible and provides native and browser themed icons.  The Chromium project has a <tt>chrome://fileicon</tt> scheme that is not web accessible, but does provide native icons for internal pages.  This new scheme is an attempt to standardize icon URIs so that their core functionality may become available to all web pages.
</p>
<a name="anchor1"></a><br /><hr />
<a name="rfc.section.2"></a><h3>2.&nbsp;
Terminology</h3>

<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <a class='info' href='#RFC2119'>[RFC2119]<span> (</span><span class='info'>Bradner, S., &ldquo;Key words for use in RFCs to Indicate Requirement Levels,&rdquo; March&nbsp;1997.</span><span>)</span></a>.
</p>
<a name="syntax"></a><br /><hr />
<a name="rfc.section.3"></a><h3>3.&nbsp;
URI Syntax</h3>

<p>The general syntax of an <tt>icon</tt> URI is defined below using <a class='info' href='#RFC5234'>ABNF<span> (</span><span class='info'>Crocker, D. and P. Overell, &ldquo;Augmented BNF for Syntax Specifications: ABNF,&rdquo; January&nbsp;2008.</span><span>)</span></a> [RFC5234]:
</p><div style='display: table; width: 0; margin-left: 3em; margin-right: auto'><pre>
<dfn>iconuri</dfn> = "<span class='str'>icon:</span>" ( <cite class='id'>fextension</cite> / <cite class='id'>mediatype</cite> / "<span class='str'>unknown</span>" /
                    "<span class='str'>directory</span>" / "<span class='str'>parentdir</span>" ) [ "<span class='str'>;</span>" <cite class='id'>size</cite> ]
<dfn>fextension</dfn> = "<span class='str'>.</span>" <span class='rep'>1*</span><cite class='id'>token</cite> <em>; File extension</em>
<dfn>mediatype</dfn> = [ <cite class='id'>type</cite> "<span class='str'>:</span>" <cite class='id'>subtype</cite> ] <em>; Internet media type</em>
<dfn>size</dfn> = <cite class='id'>pixels</cite> / "<span class='str'>small</span>" / "<span class='str'>medium</span>" / "<span class='str'>large</span>"
<dfn>pixels</dfn> = <span class='rep'>1*</span><cite class='key'>digit</cite> <em>; Size of icon in square pixels</em>
</pre></div>
<p>where <tt>token</tt>, <tt>digit</tt>, <tt>type</tt> and <tt>subtype</tt> rules are defined in <a class='info' href='#RFC2045'>[RFC2045]<span> (</span><span class='info'>Freed, N. and N. Borenstein, &ldquo;Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,&rdquo; November&nbsp;1996.</span><span>)</span></a>.  The sections of an <tt>icon</tt> URI are ALWAYS case-insensitive.
</p>
<a name="encoding"></a><br /><hr />
<a name="rfc.section.4"></a><h3>4.&nbsp;
Encoding Considerations</h3>

<p>The encoding of the <tt>type</tt> and <tt>subtype</tt> rules is defined in <a class='info' href='#RFC2045'>[RFC2045]<span> (</span><span class='info'>Freed, N. and N. Borenstein, &ldquo;Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,&rdquo; November&nbsp;1996.</span><span>)</span></a>.  The <tt>fextension</tt> rule may include characters from the <a class='info' href='#UCS'>Unicode Character Set<span> (</span><span class='info'>International Organization for Standardization, &ldquo;Information Technology - Universal Multiple-Octet Coded Character Set (UCS),&rdquo; December&nbsp;2003.</span><span>)</span></a> [UCS], as suggested by <a class='info' href='#RFC3986'>URI<span> (</span><span class='info'>Berners-Lee, T., Fielding, R., and L. Masinter, &ldquo;Uniform Resource Identifier (URI): Generic Syntax,&rdquo; January&nbsp;2005.</span><span>)</span></a> [RFC3986], by first encoding those characters as octets to the <a class='info' href='#RFC3629'>UTF-8 character encoding<span> (</span><span class='info'>Yergeau, F., &ldquo;UTF-8, a transformation format of ISO 10646,&rdquo; November&nbsp;2003.</span><span>)</span></a> [RFC3629].  Only those octets that do not correspond to characters in the unreserved set should be percent-encoded.
</p>
<p>By using UTF-8 encoding, there are no known compatibility issues with mapping Internationalized Resource Identifiers to <tt>icon</tt> URIs according to <a class='info' href='#RFC3987'>[RFC3987]<span> (</span><span class='info'>Duerst, M. and M. Suignard, &ldquo;Internationalized Resource Identifiers (IRIs),&rdquo; January&nbsp;2005.</span><span>)</span></a>.  Since <tt>icon</tt> URIs do not use domain names, <tt>ireg-name</tt> conversion is unnecessary.
</p>
<a name="resolution"></a><br /><hr />
<a name="rfc.section.5"></a><h3>5.&nbsp;
Resolving &quot;icon&quot; URIs</h3>

<p>An <tt>icon</tt> URI MUST resolve to an image resource representing an icon.  The <tt>directory</tt> and <tt>parentdir</tt> keywords SHOULD resolve to the system icons for a directory and a parent directory (i.e. the "up" icon).  The resolved icon SHOULD be the platform icon for a the specified <tt>fextension</tt> or <tt>mediatype</tt>.  If an icon is not available for the specified filetype, applications MUST return a default icon which SHOULD be the system icon for files of unknown type.  The icon resource's dimensions MUST match the size indicated in the URI or use the default size.
</p>
<a name="anchor2"></a><br /><hr />
<a name="rfc.section.5.1"></a><h3>5.1.&nbsp;
File extension</h3>

<p>The filetype for an icon is specifiable by the <tt>fextension</tt> rule.  An acceptable value for this section is a file extension for which a platform icon can be retrieved.  Applications are REQUIRED to support <tt>icon</tt> URI resolution by file extension.
</p>
<p>In the event that a platform icon is not available for the provided file extension, the application SHOULD return a default "unknown file" icon in the appropriate size.
</p>
<a name="anchor3"></a><br /><hr />
<a name="rfc.section.5.2"></a><h3>5.2.&nbsp;
Internet media type</h3>

<p>The filetype for an icon is also specifiable by the <tt>mediatype</tt> rule.  An acceptable value for this section is an Internet media type, as defined in <a class='info' href='#RFC2045'>[RFC2045]<span> (</span><span class='info'>Freed, N. and N. Borenstein, &ldquo;Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,&rdquo; November&nbsp;1996.</span><span>)</span></a> and <a class='info' href='#RFC2046'>[RFC2046]<span> (</span><span class='info'>Freed, N. and N. Borenstein, &ldquo;Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types,&rdquo; November&nbsp;1996.</span><span>)</span></a>, for which a platform icon can be retrieved.  Applications are REQUIRED to support <tt>icon</tt> URI resolution by Internet media type.
</p>
<p>In the event that a platform icon is not available for the provided media type, the application SHOULD return a default "unknown file" icon in the appropriate size.
</p>
<a name="anchor4"></a><br /><hr />
<a name="rfc.section.5.3"></a><h3>5.3.&nbsp;
Icon Size</h3>

<p>An <tt>icon</tt> URI MAY specify the size of a requested icon through the <tt>size</tt> rule.  The <tt>size</tt> MUST be either an integer value representing the width/height of the square icon in pixels or one of: "small", "medium", or "large".  Applications are REQUIRED to support both user-provided integer values and the 3 keyword values.
</p>
<p>If the <tt>size</tt> is specified as "small" the application MUST return a 16x16 pixels icon.
</p>
<p>If the <tt>size</tt> is specified as "medium" the application MUST return a 64x64 pixels icon.
</p>
<p>If the <tt>size</tt> is specified as "large" the application MUST return a 256x256 pixels icon.
</p>
<p>If the <tt>size</tt> is not specified in the URI, the application MUST return a 16x16 pixels icon.
</p>
<p>In the event that the platform does not support one of the keyword icon sizes or a user-provided size, the application SHOULD scale the icon appropriately.
</p>
<a name="examples"></a><br /><hr />
<a name="rfc.section.5.4"></a><h3>5.4.&nbsp;
Examples</h3>

<p>icon: &mdash; Displays a 16x16 pixels platform icon for an unknown filetype.
</p>
<p>icon:;medium &mdash; Displays a 64x64 pixels platform icon for an unknown filetype.
</p>
<p>icon:.zip &mdash;Displays a 16x16 pixels platform icon for the .zip file extension.
</p>
<p>icon:.MP3;32 &mdash;Displays a 32x32 pixels platform icon for the .mp3 file extension.
</p>
<p>ICON:unknown &mdash;Displays a 16x16 pixels default icon for an unknown filetype.
</p>
<p>icon:directory &mdash;Displays a 16x16 pixels platform icon for a directory.
</p>
<p>icon:parentdir;32 &mdash;Displays a 32x32 pixels platform icon for a parent directory.
</p>
<p>icon:image:jpeg;128 &mdash;Displays a 128x128 pixels platform icon for the image/jpeg media type.
</p>
<p>icon:AUDIO:MPEG;large &mdash;Displays a 256x256 platform icon for the audio/mpeg media type.
</p>
<p>icon:.doc;SMALL &mdash;Displays a 16x16 platform icon for the .doc file extension.
</p>
<p>icon:.pdf;medium &mdash;Displays a 64x64 platform icon for the .pdf file extension.
</p>
<a name="normalization"></a><br /><hr />
<a name="rfc.section.6"></a><h3>6.&nbsp;
Normalization</h3>

<p><tt>Icon</tt> URIs adhere to the standard <a class='info' href='#RFC3986'>URI normalization rules<span> (</span><span class='info'>Berners-Lee, T., Fielding, R., and L. Masinter, &ldquo;Uniform Resource Identifier (URI): Generic Syntax,&rdquo; January&nbsp;2005.</span><span>)</span></a> [RFC3986]; specifically Simple String Comparison, Case Normalization, and Percent-Encoding Normalization.  Due to the structure of <tt>icon</tt> URIs, the Syntax-Based, Scheme-Based, and Protocol-Based Normalization rules do not apply.  The sections of an <tt>icon</tt> URI are ALWAYS case-insensitive.
</p>
<a name="security"></a><br /><hr />
<a name="rfc.section.7"></a><h3>7.&nbsp;
Security Considerations</h3>

<p>There are potential privacy risks that need to be taken into consideration with this new scheme.
</p>
<p><tt>Icon</tt> URIs specify private icon resources located on a user's machine.  Web pages MUST NOT be able to retrieve the platform icons that this scheme provides to the user.  Further, web pages MUST NOT be able to retrieve information about the platform icons that might expose the applications installed on a user's machine.  The following sections explore specific issues that applications MUST address in their respective implementations.
</p>
<a name="anchor5"></a><br /><hr />
<a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
Canvas Images</h3>

<p>HTML5 introduces the canvas element which allows for dynamic scriptable rendering of 2D bitmap images.
</p>
<p>Images can be imported onto the canvas by first retrieving a reference to a JavaScript <tt>Image</tt> object, then drawing the image on the canvas using the <a href='http://dev.w3.org/html5/canvas-api/canvas-2d-api.html#dom-context-2d-drawimage'>drawImage</a>. Another option involves setting the 2D context's <tt>fillStyle</tt> or <tt>strokeStyle</tt> to a <tt>CanvasPattern</tt> object created from an <tt>Image</tt> object using the <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-createpattern'>createPattern</a> method.  There are four ways one can retrieve a handle to an <tt>Image</tt> object:
</p>
<p>1. Retrieve <tt>&lt;img&gt;</tt> elements already on the page using the DOM.
</p>
<p>2. Retrieve other canvas elements using the document.getElementsById method or the document.getElementsByTagName method.
</p>
<p>3. Create an image from scratch, i.e. var img = new Image().
</p>
<p>4. Embed an image using its data URI.
</p>
<p>As a result of #1, an <tt>&lt;img&gt;</tt> tag, whose src attribute is an <tt>icon</tt> URI, can be retrieved as a JavaScript <tt>Image</tt> object.  Considering #3; an <tt>Image</tt> can be created in JavaScript and have its src field is set to an <tt>icon</tt> URI.
</p>
<p>Drawing the <tt>Image</tt> to the canvas provides web pages with two potential means of accessing the images: the <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-getimagedata'>getImageData</a> and <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-canvas-todataurl'>toDataURL</a> methods of the canvas's 2D context.  The canvas's 2D drawing API is defined in <a class='info' href='#Canvas2D'>[Canvas2D]<span> (</span><span class='info'>Hickson, I., Hyatt, D., Schepers, D., and E. Graff, &ldquo;Canvas 2D API Specification 1.0,&rdquo; .</span><span>)</span></a>.
</p>
<p>An <tt>Image</tt> object with an <tt>icon</tt> URI as its src attribute MUST NOT be considered as same-origin as any other origin.  If an <tt>Image</tt> with an <tt>icon</tt> URI src is drawn to a canvas, the canvas MUST be considered tainted and have its <tt>origin-clean</tt> flag set to false.  As such, if <tt>getImageData</tt> or <tt>toDataURL</tt> is called on a canvas that has been tainted by <tt>icon</tt> URI <tt>Image</tt> data, the method MUST raise a <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#security_err'>SECURITY_ERR</a> exception.  See <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#security-with-canvas-elements'>Security with canvas elements</a> in the <a class='info' href='#HTML5'>HTML5 Draft Standard<span> (</span><span class='info'>Hickson, I., &ldquo;HTML5 Draft Standard,&rdquo; .</span><span>)</span></a> [HTML5] for further details.
</p>
<a name="anchor6"></a><br /><hr />
<a name="rfc.section.7.2"></a><h3>7.2.&nbsp;
Image Size</h3>

<p>Because the width and height of an <tt>Image</tt> object are always accessible, applications MUST use the default size (16x16) for platform icons if the size has not been provided by the <tt>icon</tt> URI.  This is a requirement because evil web pages may be able to use the width and height of icons to infer details about the applications a user has installed.
</p>
<a name="anchor7"></a><br /><hr />
<a name="rfc.section.8"></a><h3>8.&nbsp;
IANA Considerations</h3>

<p>This specification requests the IANA provisionally register the <tt>icon</tt> URI scheme as specified in this document and summarized in the following template, per <a class='info' href='#RFC4395'>[RFC4395]<span> (</span><span class='info'>Hansen, T., Hardie, T., and L. Masinter, &ldquo;Guidelines and Registration Procedures for New URI Schemes,&rdquo; February&nbsp;2006.</span><span>)</span></a>:
</p>
<p></p>
<blockquote class="text"><dl>
<dt>URI scheme name:</dt>
<dd>icon
</dd>
<dt>Status:</dt>
<dd>Provisional
</dd>
<dt>URI scheme syntax:</dt>
<dd>See <a class='info' href='#syntax'>Section&nbsp;3<span> (</span><span class='info'>URI Syntax</span><span>)</span></a>
</dd>
<dt>URI scheme semantics:</dt>
<dd>See <a class='info' href='#intro'>Section&nbsp;1<span> (</span><span class='info'>Introduction</span><span>)</span></a>
</dd>
<dt>Encoding considerations:</dt>
<dd>See <a class='info' href='#encoding'>Section&nbsp;4<span> (</span><span class='info'>Encoding Considerations</span><span>)</span></a>
</dd>
<dt>Intended usage:</dt>
<dd>See <a class='info' href='#intro'>Section&nbsp;1<span> (</span><span class='info'>Introduction</span><span>)</span></a> and <a class='info' href='#examples'>Section&nbsp;5.4<span> (</span><span class='info'>Examples</span><span>)</span></a>
</dd>
<dt>Applications and/or protocols that use this URI scheme name:</dt>
<dd>Any applications that use URIs as identifiers for private resources, such as web browsers.
</dd>
<dt>Interoperability considerations:</dt>
<dd>See <a class='info' href='#normalization'>Section&nbsp;6<span> (</span><span class='info'>Normalization</span><span>)</span></a>
</dd>
<dt>Security considerations:</dt>
<dd>See <a class='info' href='#security'>Section&nbsp;7<span> (</span><span class='info'>Security Considerations</span><span>)</span></a>
</dd>
<dt>Relevant publications:</dt>
<dd>None
</dd>
<dt>Contact:</dt>
<dd>Pierre-Antoine LaFayette (pierre@alumni.utoronto.ca)
</dd>
<dt>Author/Change controller:</dt>
<dd>Pierre-Antoine LaFayette
</dd>
</dl></blockquote>

<a name="anchor8"></a><br /><hr />
<a name="rfc.section.9"></a><h3>9.&nbsp;
Acknowledgements</h3>

<p>This document was made possible thanks to the input of Adam Barth, Lachlan Hunt, Maciej Stachowiak, Jonas Sicking, Robert O'Callahan, Josh Soref, and Ian Fette.
</p>
<a name="rfc.references"></a><br /><hr />
<a name="rfc.section.10"></a><h3>10.&nbsp;
References</h3>

<a name="rfc.references1"></a><br /><hr />
<h3>10.1.&nbsp;Normative References</h3>
<table width="99%" border="0">
<tr><td class="author-text" valign="top"><a name="RFC2045">[RFC2045]</a></td>
<td class="author-text"><a href="mailto:ned@innosoft.com">Freed, N.</a> and <a href="mailto:nsb@nsb.fv.com">N. Borenstein</a>, &ldquo;<a href="http://tools.ietf.org/html/rfc2045">Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</a>,&rdquo; RFC&nbsp;2045, November&nbsp;1996 (<a href="http://www.rfc-editor.org/rfc/rfc2045.txt">TXT</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC2046">[RFC2046]</a></td>
<td class="author-text"><a href="mailto:ned@innosoft.com">Freed, N.</a> and <a href="mailto:nsb@nsb.fv.com">N. Borenstein</a>, &ldquo;<a href="http://tools.ietf.org/html/rfc2046">Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</a>,&rdquo; RFC&nbsp;2046, November&nbsp;1996 (<a href="http://www.rfc-editor.org/rfc/rfc2046.txt">TXT</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
<td class="author-text"><a href="mailto:sob@harvard.edu">Bradner, S.</a>, &ldquo;<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; BCP&nbsp;14, RFC&nbsp;2119, March&nbsp;1997 (<a href="http://www.rfc-editor.org/rfc/rfc2119.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2119.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2119.xml">XML</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC3629">[RFC3629]</a></td>
<td class="author-text">Yergeau, F., &ldquo;<a href="http://tools.ietf.org/html/rfc3629">UTF-8, a transformation format of ISO 10646</a>,&rdquo; STD&nbsp;63, RFC&nbsp;3629, November&nbsp;2003 (<a href="http://www.rfc-editor.org/rfc/rfc3629.txt">TXT</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC3986">[RFC3986]</a></td>
<td class="author-text"><a href="mailto:timbl@w3.org">Berners-Lee, T.</a>, <a href="mailto:fielding@gbiv.com">Fielding, R.</a>, and <a href="mailto:LMM@acm.org">L. Masinter</a>, &ldquo;<a href="http://tools.ietf.org/html/rfc3986">Uniform Resource Identifier (URI): Generic Syntax</a>,&rdquo; STD&nbsp;66, RFC&nbsp;3986, January&nbsp;2005 (<a href="http://www.rfc-editor.org/rfc/rfc3986.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc3986.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc3986.xml">XML</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC3987">[RFC3987]</a></td>
<td class="author-text">Duerst, M. and M. Suignard, &ldquo;<a href="http://tools.ietf.org/html/rfc3987">Internationalized Resource Identifiers (IRIs)</a>,&rdquo; RFC&nbsp;3987, January&nbsp;2005 (<a href="http://www.rfc-editor.org/rfc/rfc3987.txt">TXT</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC5234">[RFC5234]</a></td>
<td class="author-text">Crocker, D. and P. Overell, &ldquo;<a href="http://tools.ietf.org/html/rfc5234">Augmented BNF for Syntax Specifications: ABNF</a>,&rdquo; STD&nbsp;68, RFC&nbsp;5234, January&nbsp;2008 (<a href="http://www.rfc-editor.org/rfc/rfc5234.txt">TXT</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="UCS">[UCS]</a></td>
<td class="author-text">International Organization for Standardization, &ldquo;Information Technology - Universal Multiple-Octet Coded Character Set (UCS),&rdquo; ISO/IEC&nbsp;Standard 10646, December&nbsp;2003.</td></tr>
</table>

<a name="rfc.references2"></a><br /><hr />
<h3>10.2.&nbsp;Informative References</h3>
<table width="99%" border="0">
<tr><td class="author-text" valign="top"><a name="Canvas2D">[Canvas2D]</a></td>
<td class="author-text">Hickson, I., Hyatt, D., Schepers, D., and E. Graff, &ldquo;<a href="http://dev.w3.org/html5/canvas-api/canvas-2d-api.html">Canvas 2D API Specification 1.0</a>.&rdquo;</td></tr>
<tr><td class="author-text" valign="top"><a name="HTML5">[HTML5]</a></td>
<td class="author-text">Hickson, I., &ldquo;<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">HTML5 Draft Standard</a>.&rdquo;</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC4395">[RFC4395]</a></td>
<td class="author-text">Hansen, T., Hardie, T., and L. Masinter, &ldquo;<a href="http://tools.ietf.org/html/rfc4395">Guidelines and Registration Procedures for New URI Schemes</a>,&rdquo; BCP&nbsp;35, RFC&nbsp;4395, February&nbsp;2006 (<a href="http://www.rfc-editor.org/rfc/rfc4395.txt">TXT</a>).</td></tr>
</table>

<a name="rfc.authors"></a><br /><hr />
<h3>Author's Address</h3>
<table width="99%" border="0" cellpadding="0" cellspacing="0">
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Pierre-Antoine Benoit LaFayette</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Chromium Project</td></tr>
<tr><td class="author" align="right">EMail:&nbsp;</td>
<td class="author-text"><a href="mailto:pierre@alumni.utoronto.ca">pierre@alumni.utoronto.ca</a></td></tr>
</table>
</body></html>

